package com.yiren.dbaa.module.practice_set.line.contract;


import com.yiren.backstage.currency.entity.LineInfoEntity;
import com.yiren.dbaa.currency.api.CommonCallBack;

import java.util.List;

/**
 * @author lwb
 * @date : 2022/11/15 14:42
 * @description: 线路首页
 */
public interface LineHomeContract {

    interface Presenter {
        /**
         * 加载线路数据
         * @param view
         */
        void loadLineList(View view,String siteCode);

        /**
         * 下载线路数据
         * @param lineInfo
         */
        void downLoadLineData(LineInfoEntity lineInfo,View view);

        /**
         * 删除线路数据
         * @param lineInfo
         * @param callBack
         */
        void deleteLine(LineInfoEntity lineInfo,CommonCallBack callBack);

    }
    interface Model {
        /**
         * 从服务器获取公开的线路
         * @param userid  用户ID
         * @param siteCode  考场code
         * @param isPublic 是否已公开
         * @param callBack
         */
        void getLineFromServer(String userid,String siteCode,boolean isPublic, CommonCallBack callBack);

        /**
         * 线路首页数据合并
         * @param localLines 本地线路
         * @param serverLines 服务器已公开线路
         * @return
         */
        List<LineInfoEntity> lineHomedataMerge(List<LineInfoEntity> localLines, List<LineInfoEntity> serverLines);


        /**
         * 下载线路数据
         * @param name  线路名字
         * @param lineVer  线路版本
         * @param siteCode  考场code
         * @param pUserId  合伙人ID
         * @param cUserId  教练ID
         * @param callBack
         */
        void downLoadLinePointData(String name, float lineVer, String siteCode, int pUserId, int cUserId, CommonCallBack  callBack);

    }

    interface View {

        /**
         * 显示考场规则
         */
        void showLineList(List<LineInfoEntity> lineList);

        /**
         * 刷新考场规则数据显示
         */
        void refreshLineList();
    }


}
